Programming I

Course Code
προ-1
ECTS Credits
6
Semester
1st Semester
Course Category

Core courses

Core courses

Specialization
Core Courses
Course Description
COURSE CONTENTS

Course contents: Introduction, data types and variables in C, data input and output, operators, program flow control statements, iterations (loops), arrays, strings, pointers, functions, searching and sorting arrays algorithms, structures and unions, dynamic memory management, text and binary files.

LEARNING OUTCOMES

At the end of the course the student will be able to:

  • edit, compile and run a C program.
  • recognize and use C data types, to declare variables and assign values to them, to write C statements by using C operators, as well as to read input data from keyboard and display output data in screen by using scanf() and printf() functions, respectively.
  • control the flow of C programs by using either if-else and switch statements or the conditional (ternary) operator and create and execute iterations (loops) by using for, while and do-while statements.
  • create and handle one-dimensional and two-dimensional arrays, to use pointers and handle arrays with pointer notation, to handle the char data type and create and use strings with either array or pointer notation.
  • declare and implement functions and use the most popular C library functions, to distinguish callby-value and call-by-reference function calls and use them.
  • execute, use and implement basic searching (linear/binary search) and sorting (selection-sort, insertion-sort and bubble-sort) algorithms in arrays and use the dynamic memory management functions, e.g., malloc(), free(), memcpy(), memmove(), memcmp().
  • recognize the difference between structs and unions, to define and handle structs and unions, to create their own data types, to recognize the difference between text and binary files and to write C programs that open, close, read, write and append both text and binary files.
ASSESSMENT

Assessment: Written exams at the end of the semester. Lab assignments every week (or every second week) contributing to the final grade with a percentage ranging between 10% and 20%. It is possible that home assignments will be given and/or intermediate written exams will take place, while each of the above will contribute to the final grade with a percentage ranging between 10% and 20%.